package com.supermarket.user.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 客户信息表
 */
@Data
@TableName("user")
@Schema(description = "客户管理")
public class User {
    /**
     * 用户ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    @Schema(description = "用户ID")
    private Long id;
    /**
     * 微信openId
     */
    @Schema(description = "微信openId")
    private String wxOpenId;
    /**
     * QQopenId
     */
    @Schema(description = "QQopenId")
    private String qqOpenId;
    /**
     * 用户名
     */
    @Schema(description = "用户名")
    @NotNull(message = "用户名不能为空")
    private String username;
    /**
     * 密码（加密存储）
     */
    @Schema(description = "密码（加密存储）")
    private String password;
    /**
     * 昵称
     */
    @Schema(description = "昵称")
    @NotNull(message = "昵称不能为空")
    private String nickname;
    /**
     * 头像URL
     */
    @Schema(description = "头像URL")
    @NotNull(message = "头像URL不能为空")
    private String avatar;
    /**
     * 手机号
     */
    @Schema(description = "手机号")
    @NotNull(message = "手机号不能为空")
    private String phone;
    /**
     * 邮箱
     */
    @Schema(description = "邮箱")
    @NotNull(message = "邮箱不能为空")
    private String email;
    /**
     * 性别（0未知 1男 2女）
     */
    @Schema(description = "性别（0未知 1男 2女）")
    private Integer gender;
    /**
     * 生日
     */
    @Schema(description = "生日")
    private String birthday;
    /**
     * 会员等级id
     */
    @Schema(description = "会员等级id")
    private Long memberLevelId;
    /**
     * 积分
     */
    @Schema(description = "积分")
    private Integer integral;
    /**
     * 账号状态（1正常 0禁用）
     */
    @Schema(description = "账号状态（1正常 0禁用）")
    private Integer status;
    /**
     * 是否可以下单（1正常 0禁用）
     */
    @Schema(description = "是否可以下单（1正常 0禁用）")
    private Integer isPlaceOrder;
    /**
     * 是否可以领券（1正常 0禁用）
     */
    @Schema(description = "是否可以领券（1正常 0禁用）")
    private Integer isReceiveCoupon;
    /**
     * 是否可以评论（1正常 0禁用）
     */
    @Schema(description = "是否可以评论（1正常 0禁用）")
    private Integer isComment;
    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private Date createdAt;
    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    private Date updatedAt;
    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @Schema(description = "删除标志（0代表存在 2代表删除）")
    private Integer delFlag;
}
